import { _init,
	_connect, 
	_disconnect, 
	_addListener,
	_destroy
 } from "../interface/connect/connect.js"
 
import { 
	_getConversations,
	_getConversation,
	_removeConversation,
	_removeConversations,
	_saveDraftMessage,
	_getDraftMessage,
	_clearDraftMessage,
	_changeConversationNotificationLevel,
	_getConversationNotificationLevel,
	_changeConversationTypeNotificationLevel,
	_getConversationTypeNotificationLevel,
	_getBlockedConversations,
	_changeConversationTopStatus,
	_getConversationTopStatus,
	_syncConversationReadStatus,
	_searchConversations,
	_getMessageCount,
	_getTopConversations,
	_getUnreadConversations,
 } from '../interface/conversation/conversation.js'
 
import {
	_sendTextMessage,
	_sendImageMessage,
	_sendFileMessage,
	_sendVoiceMessage,
	_sendSightMessage,
	_sendReferenceMessage,
	_sendGIFMessage,
	_sendLocationMessage,
	_sendCustomMessage,
	_sendNativeCustomMessage,
	_sendNativeCustomMediaMessage,
	_cancelSendMediaMessage,
	_downloadMediaMessage,
	_cancelDownloadMediaMessage,
	_sendTypingStatus,
	_getMessages,
	_getMessageById,
	_getMessageByUId,
	_getFirstUnreadMessage,
	_getUnreadMentionedMessages,
	_insertMessage,
	_insertMessages,
	_clearMessages,
	_deleteLocalMessage,
	_deleteMessages,
	_recallMessage,
	_sendPrivateReadReceiptMessage,
	_sendGroupReadReceiptRequest,
	_sendGroupReadReceiptResponse,
	_updateMessageExpansion,
	_removeMessageExpansion,
	_changeMessageSentStatus,
	_changeMessageReceiveStatus,
	_searchMessages,
	_searchMessagesByTimeRange,
	_searchMessagesByUserId,
	_sendGroupMessageToDesignatedUsers,
	_registerNativeCustomMessage,
	_registerNativeCustomMediaMessage,
} from '../interface/message/message.js'

import {
	_getUnreadCount,
	_getTotalUnreadCount, 
	_getUnreadCountByConversationTypes, 
	_getUnreadMentionedCount, 
	_clearUnreadCount,
 } from "../interface/unread/unread.js"
 
import {
	_joinChatRoom,
	_leaveChatRoom,
	_getChatRoomMessages,
	_getChatRoomEntry,
	_getChatRoomAllEntries,
	_addChatRoomEntry,
	_forceSetChatRoomEntry,
	_addChatRoomEntries,
	_removeChatRoomEntry,
	_forceRemoveChatRoomEntry,
	_removeChatRoomEntries
} from '../interface/chatroom/chatroom.js'

import {
	_syncUltraGroupReadStatus,
	_getConversationsForAllChannel,
	_getUltraGroupUnreadMentionedCount,
	_modifyUltraGroupMessage,
	_recallUltraGroupMessage,
	_clearUltraGroupMessages,
	_sendUltraGroupTypingStatus,
	_clearUltraGroupMessagesForAllChannel,
	_getBatchRemoteUltraGroupMessages,
	_updateUltraGroupMessageExpansion,
	_removeUltraGroupMessageExpansion,
	_changeUltraGroupDefaultNotificationLevel,
	_getUltraGroupDefaultNotificationLevel,
	_changeUltraGroupChannelDefaultNotificationLevel,
	_getUltraGroupChannelDefaultNotificationLevel,
	_getUltraGroupAllUnreadCount,
	_getUltraGroupAllUnreadMentionedCount,
	_getUltraGroupUnreadCount,
 } from "../interface/ultra_group/ultra_group.js"

import {
	_addToBlacklist,
	_removeFromBlacklist,
	_getBlacklistStatus,
	_getBlacklist,
	_changeNotificationQuietHours,
	_removeNotificationQuietHours,
	_getNotificationQuietHours,
	_changePushContentShowStatus,
	_changePushLanguage,
	_changePushReceiveStatus,
	_changeLogLevel,
	_getDeltaTime,
	_registerPushToken,
} from '../interface/other/other.js'

export default [

	{
		title: '链接相关',
		list: [
			_init,
			_connect,
			_disconnect,
			_addListener,
			_destroy
		]
	},
	{
		title: '会话相关',
		list: [
			_getConversations,
			_getConversation,
			_removeConversation,
			_removeConversations,
			_saveDraftMessage,
			_getDraftMessage,
			_clearDraftMessage,
			_changeConversationNotificationLevel,
			_getConversationNotificationLevel,
			_changeConversationTypeNotificationLevel,
			_getConversationTypeNotificationLevel,
			_getBlockedConversations,
			_changeConversationTopStatus,
			_getConversationTopStatus,
			_syncConversationReadStatus,
			_searchConversations,
			_getMessageCount,
			_getTopConversations,
			_getUnreadConversations,
		]
	},
	{
		title: '消息相关',
		list: [
			_registerNativeCustomMessage,
			_registerNativeCustomMediaMessage,
			_sendTextMessage,
			_sendImageMessage,
			_sendFileMessage,
			_sendVoiceMessage,
			_sendSightMessage,
			_sendReferenceMessage,
			_sendGIFMessage,
			_sendLocationMessage,
			_sendCustomMessage,
			_sendNativeCustomMessage,
			_sendNativeCustomMediaMessage,
			_cancelSendMediaMessage,
			_downloadMediaMessage,
			_cancelDownloadMediaMessage,
			_sendTypingStatus,
			_getMessages,
			_getMessageById,
			_getMessageByUId,
			_getFirstUnreadMessage,
			_getUnreadMentionedMessages,
			_insertMessage,
			_insertMessages,
			_clearMessages,
			_deleteLocalMessage,
			_deleteMessages,
			_recallMessage,
			_sendPrivateReadReceiptMessage,
			_sendGroupReadReceiptRequest,
			_sendGroupReadReceiptResponse,
			_updateMessageExpansion,
			_removeMessageExpansion,
			_changeMessageSentStatus,
			_changeMessageReceiveStatus,
			_searchMessages,
			_searchMessagesByTimeRange,
			_searchMessagesByUserId,
			_sendGroupMessageToDesignatedUsers,
		]
	},
	{
		title: '未读数相关',
		list: [
			_getUnreadCount,
			_getTotalUnreadCount, 
			_getUnreadCountByConversationTypes, 
			_getUnreadMentionedCount, 
			_clearUnreadCount,
		]
	},
	{
		title: '聊天室相关',
		list: [
			_joinChatRoom,
			_leaveChatRoom,
			_getChatRoomMessages,
			_addChatRoomEntry,
			_addChatRoomEntries,
			_getChatRoomEntry,
			_getChatRoomAllEntries,
			_removeChatRoomEntry,
			_removeChatRoomEntries
		]
	},
	{
		title: '超级群相关',
		list: [
			_syncUltraGroupReadStatus,
			_getConversationsForAllChannel,
			_getUltraGroupUnreadMentionedCount,
			_modifyUltraGroupMessage,
			_recallUltraGroupMessage,
			_clearUltraGroupMessages,
			_sendUltraGroupTypingStatus,
			_clearUltraGroupMessagesForAllChannel,
			_getBatchRemoteUltraGroupMessages,
			_updateUltraGroupMessageExpansion,
			_removeUltraGroupMessageExpansion,
			_changeUltraGroupDefaultNotificationLevel,
			_getUltraGroupDefaultNotificationLevel,
			_changeUltraGroupChannelDefaultNotificationLevel,
			_getUltraGroupChannelDefaultNotificationLevel,
			_getUltraGroupAllUnreadCount,
			_getUltraGroupAllUnreadMentionedCount,
			_getUltraGroupUnreadCount,
		]
	},
	{
		title: '其他配置',
		list: [
			_addToBlacklist,
			_removeFromBlacklist,
			_getBlacklistStatus,
			_getBlacklist,
			_changeNotificationQuietHours,
			_removeNotificationQuietHours,
			_getNotificationQuietHours,
			_changePushContentShowStatus,
			_changePushLanguage,
			_changePushReceiveStatus,
			_changeLogLevel,
			_getDeltaTime,
			_registerPushToken,
		]
	}
]